﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Threading;

namespace BaseSyntax.GenericTest
{
	public class GenericMethod<T>:ITest
	{
		// 在非泛型类定义泛型方法
		private class Defaulter
		{
			public T2 getDefault<T2>() => default(T2);
		}
		
		// 泛型方法中的参数，不要和类的泛型参数同名
		public T1 getValue<T1>() =>default(T1);
		
		// 使用where指定类型
		public T1 getValue1<T1>(T1 t)  where T1:T
		{
			Console.WriteLine(t.ToString());
			return t;
		}
		
		public void Test()
		{
			int a = getValue<int>();

			getValue<int>();
			// 此函数不能调用， 当前环境下，无法找到T是什么类型
			// getValue1<int>(3);
		}
	}
}